package in.data.stream.base; import com.google.gson.JsonElement; import com.google.gson.JsonObject; import java.util.ArrayList; import java.util.List; import in.data.Meta; import in.lib.utils.Debug; import in.lib.utils.SerialWriterUtil; import in.model.AdnModel; import in.model.base.Model; import lombok.Data; @Data public abstract class Stream<T extends AdnModel> extends Model { protected Meta meta; protected List<T> items = new ArrayList<T>(); @Override public Stream createFrom(JsonElement element) { try { JsonObject streamObject = element.getAsJsonObject(); JsonElement metaObject = streamObject.get("meta"); this.meta = new Meta().createFrom(metaObject); return this; } catch (Exception e) { Debug.out(e); } return null; } @Override public String getVersion() { return "dbaa8ba9-1820-4480-8635-80934837b77f"; } @Override public void write(SerialWriterUtil util) { try { util.writeString(getVersion()); util.writeModel(meta); util.writeModelList(items); } catch (Exception e) { Debug.out(e); } } // public static final Parcelable.Creator<Stream> CREATOR = new Creator<Stream>() // { // @Override public Stream[] newArray(int size) // { // return new Stream[size]; // } // // @Override public Stream createFromParcel(Parcel source) // { // return new Stream().createFrom(source); // } // }; }